package com.itheima.d14_stringjoiner;

import java.util.StringJoiner;


/**
 * StringJoiner是啥？使用它有什么好处？
 * JDK8出现的一个可变的、操作字符串的容器。跟StringBuilder一样，也是用来操作字符串的，也可以看成是一个容器，创建之后里面的内容是可变的。
 * 使用它拼接字符串的时候，不仅高效，而且代码的编写更加的方便。好处：不仅能提高字符串的操作效率，并且在有些场景下使用它操作字符串，代码会更简洁
 *
 * 构造器                                              说明
 * public StringJoiner (间隔符号)       创建一个StringJoiner对象，指定拼接时的间隔符号
 * public StringJoiner (间隔符号，开始符号，结束符号） 创建一个StringJoiner对象，指定拼接时的间隔符号、开始符号、结束符号
 * 方法名称                                         说明
 * public StringJoiner add (添加的内容)           添加数据，并返回对象本身
 * public int length()                          返回长度 ( 字符出现的个数)
 * public String toString()                     返回一个字符串（该字符串就是拼接之后的结果）
 */
public class Test {
    public static void main(String[] args) {
        // 目标：掌握StringJoiner的使用。 注意只能拼接字符串
        StringJoiner s = new StringJoiner(", "); // 间隔符！
        s.add("10");
        s.add("av");
        s.add("11");
        System.out.println(s);  //10, av, 11

        StringJoiner s1 = new StringJoiner(", ", "[", "]"); // 间隔符！
        s1.add("java1");
        s1.add("java2");
        s1.add("java3");
        System.out.println(s1); // [java1, java2, java3]

        System.out.println(getArrayData(new int[]{11, 22, 33}));
    }

    public static String getArrayData(int[] arr){
        // 1、判断arr是否为null
        if(arr == null){
            return null;
        }
        // 2、arr数组对象存在。 arr = [11, 22, 33]
        StringJoiner s = new StringJoiner(", ", "[", "]");
        for (int i = 0; i < arr.length; i++) {
            //因为StringJoiner只能拼接字符串，所以加个“”，就会变成字符串了
            s.add(arr[i] + "");
            //s.add(String.valueOf(arr[i]));   这样也可以
        }
        return s.toString();
    }
}








